As their level of integration continues its advancement, many complex electronic logic systems can now be implemented on a single integrated circuit (IC). Such an IC, often known as “system on a chip (SoC)” or “ultra large scale integrated circuit (ULSI)” in the art, includes a number of complex components (e.g., micro-processor, digital signal processor, peripheral and memory controllers), many of which may be individually obtained as “off-the-shelf” electronic circuit designs from numerous vendors in the market. These electronic circuit designs are known as “IPs1” to those skilled in the art. The term “IP” stands for “intellectual property.” Designers of these electronic circuits provide the designs to their customers in the form of data files which are readable by popular electronic design automation (EDA) tools. The customers of these designers then integrate these “IPs” into their own circuit designs. As an IP vendor does not provide a manufactured article here—the electronic deign is typically provided as design data represented in electronic form (e.g., stored in a storage medium, such as a compact disk, or as a stream of bits downloaded from a server via the Internet)—it has become customary in the art to refer to such electronic circuit design products as “IPs”.
In U.S. Pat. No. 6,701,491 entitled “Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it” by Yang, an interactive environment is disclosed for IC designers to emulate integrated circuits back and forth between a hardware accelerator and a software simulator. Correspondingly, memory states and logic storage node states are swapped between the accelerator and the simulator. A complete context switch is performed to create a time shared environment on the hardware accelerator so that it can be shared among multiple IC designers. In general, multiple accelerators can be interconnected to multiple simulators and multiple workstations to allow multiple designers to allow interactive operations and to shift back and forth between hardware emulation and software simulation.
A mixed emulation/simulation method is also disclosed by Yang. Here, input/output hardware probing is performed by emulation to verify correct operations. At least one semiconductor chip is used which implements an extended design verification target circuit. The extended design verification circuit includes an IOP-probing supplementary circuit in addition to the design verification target circuit. The IOP-probing supplementary circuit includes an input/output probing interface module. An input/output probing system controller generates the IOP-probing supplementary circuit for the design verification target circuit. The extended design verification target circuit is implemented in semiconductor chip(s) mounted on a prototyping board or is implemented with a hardware description language (HDL) code which defines the behavior of the IOP-probing supplementary circuit. Emulation and simulation are then performed in turn more than one time as necessary. For these emulations and simulations, state information is exchanged in an automated manner between a prototyping board and a simulator. Furthermore, the state information is exchanged in an automated manner between the prototyping board and the simulator as a result of the IOP-probing supplementary circuit-based input/output probing. With the IOP-probing supplementary circuit, another mixed emulation/simulation process is also disclosed whose operating mode is conditionally based upon a pre-determined switching condition queue ordered according to time. Simulation and emulation are performed according to the switching condition queue during the process until the queue becomes empty.
In U.S. Pat. No. 6,389,379 entitled “Coverification system and method” by Lin, et al, a coverification system and method are disclosed. The coverification system includes a reconfigurable computing system and a reconfigurable computing hardware array. The reconfigurable computing system includes a CPU and a memory for processing modeling data of the entire user design in software. In some embodiments, a target system and external I/O devices are not necessary since they can be modeled in software. In other embodiments, the target system and external I/O devices are coupled to the coverification system for speed and to use actual data, rather than simulated test bench data.
The disclosed coverification method by Lin, et al was directing at verifying the proper operation of a user design. In Lin's apparatus, the user design is connected to an external I/O device. The method involves generating a first model of the user design in software for simulation, generating a second model of at least a portion of the user design in hardware and then controlling the second model in hardware with the first model in the software. More specifically, controlling further involves synchronizing the data evaluation in the first model in software and in the second model in hardware with a software-generated clock. For debugging, the method further involves simulating selected debug test points in software, accelerating selected debug test points in hardware and controlling the delivery of data among the first model in software, the second model in hardware, and the external I/O device so that the first model in software has access to all delivered data.
In the prior art, designing, debugging, verifying and validating a system that includes a user design that is integrated with one or more third party IPs is generally difficult, as the user often starts with a behavior description or a simulation model of the IP, which provides incomplete control over the IP's logical behavior at the interfaces between the user design and the IP. In addition, a user design that includes a behavior simulation model, logic gates and embedded software is extremely difficult to create and for which to isolate system faults. For example, it is difficult to discover errors within an audio or video output data stream unless the user can “hear” or “see” the rendered audible and/or visual results. A conventional method of design verification and validation prototypes the system behavior in an electronic design automation (EDA) simulation environment to verify the numerous interface functions. Then, the user separately embodies the EDA-simulated logic into a custom application reference board-based validation environment to “hear” or “see” the audible and/or visual results. Finally, the user prototypes (implementing) the logic into packaged electronic devices to meet the product level electrical specification. During the conventional process of design verification and validation, for example, incorrectly behaving output signals of an audio or video decoder due to logic, algorithmic or software programming error of the user design may manifest themselves in the form of unpredictable audio or display behavior. For a complicated system, such an unpredictable behavior potentially caused by logic, algorithmic or software programming error is extremely difficult to diagnose and isolate in either the EDA simulation or the application reference board environment separately. Therefore, a design verification and validation system with associated software that allows the user to integrate his EDA simulator directly with his printed circuit board (PCB) prototype to quickly isolate/fix design faults, then quickly verifying and validating his PCB prototype in an integrated environment is highly desirable. In essence, such a design verification and validation system would provide the user with a high throughput, end-to-end solution from design verification to system validation.